iT邦幫忙

2022 iThome 鐵人賽

DAY 6
0
自我挑戰組

30 天快快樂樂學 Rust 系列 第 6

優雅的寫出函式

  • 分享至 

  • xImage
  •  

函式在 Rust 中非常重要,從我們的第一天開始就已經展示過函式了。而且在 Rust 寫函式的感覺非常簡單俐落,宣告一個函式就可以不用打很多字,超爽的~

那麼就一起來看怎麼寫函式吧!

函式

在 Rust 中,至少都會有一個主函式,也就是 main,而要宣告一個函式也非常簡單,只需要用關鍵字 fn 並接上函式的名稱,並且在後面加上 (),這裡可以加上參數或是不加都可以,最後再加上 {} 就宣告了一個函式,就像這樣:

fn main() {
}

在一般程式中當然不會只有一個函式,所以接著來宣告另一個函式。
前面有提到 Rust 的命名慣例是使用 snack case,所以要建立一個 do_stuff 的函式就像這樣:

fn do_stuff() {
	println!("Hello, world!");
}

那麼要怎麼執行 do_stuff() 呢?只需要在 main() 中呼叫即可:

fn main() {
	do_stuff();
}

fn do_stuff() {
	println!("Hello, world!");
}

執行結果就可以印出 Hello, world!

參數

函式的好用在於可以帶入不同的參數,去執行想要的結果。
那麼要怎麼使用參數呢?
首先帶入的參數必須要定義型別,接著在呼叫函式中帶入符合型別的值即可。
假設我們想要做一個計算總價的程式,我們需要的參數有數量跟價格,就可以這樣寫:

fn do_stuff(qty: i32, price: i32) {
    let total = qty * price;
    println!("{}", total);
}

接著呼叫函式的時候,帶入相對應的值就可以得到我們想要的結果。

fn main() {
    do_stuff(20, 100);
}

最後印出來的結果就會是 2000。

函式回傳值

在函式中,也可以使用回傳值來操作,例如上面的例子中,我們可以選擇不要在 do_stuff() 印出結果,而是在 main() 中來處理。

首先一樣帶入參數,並且定義型別,接著比較特別的是加上一個箭頭,並宣告一個型別,然後 return 結果。

如果我們想改一下函式,想算出價格半價的總金額,那可以這樣做:

fn do_stuff(qty: i32, price: i32) -> i32 {
	let half_price = price / 2;
    return qty * half_price;
}

或者想要懶一點的話,甚至可以把 return 省略,然後把 ; 拿掉:

fn do_stuff(qty: i32, price: i32) -> i32 {
    let half_price = price / 2;
    qty * half_price
}

接著呼叫函式,並帶入值,就可以得到結果。

fn main() {
    let result = do_stuff(20, 100);
    println!("{}", result); // 印出1000
}

看完今天的文章,是不是覺得 Rust 的函式很簡單呢?

明天預計會來講解一下型別的部分,相比之下函式真的不是很困難XD
但沒關係,我們慢慢從基礎打好,一步一步的體會 Rust 的樂趣吧~

本文同步發表於我的技術部落格,歡迎大家有空去參觀。


上一篇
變數的守備範圍 - 作用域
下一篇
Rust 的基本型別
系列文
30 天快快樂樂學 Rust 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言